package com.renbang.service.sys;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.renbang.dao.sys.SysFunDao;
import com.renbang.model.sys.SysFun;
import com.renbang.service.BaseServicesImp;
/**
 * 
 * @description SysFunServiceImp
 * @author user
 * @date 2017年4月27日
 */
@Service("SysFunServiceImp")
public class SysFunServiceImp extends BaseServicesImp<SysFun>{
	@Autowired
	SysFunDao SysFunDao;

	@Override
	public int removeById(Integer id) {
		List<String> idlist=getIds(id, null);
		System.out.println(idlist);
		return SysFunDao.deleteByIds(idlist);
	}
	//递归拿到所有子级id
	public List<String> getIds(Integer id,List<String> ids){
		if(ids==null){
			ids=new ArrayList<String>();
		}
		SysFun fun=new SysFun();
		fun.setpId(id);
		List<SysFun> list = SysFunDao.selectByModel(fun);
		if(list.size()<1){
			if(!ids.contains(id))
			{
				ids.add(String.valueOf(id));
			}
			return ids;
		}
		for (SysFun g : list) {
			getIds(g.getId(),ids);
		}
		ids.add(String.valueOf(id));
		return ids;
	}
	
	/*根据power里关联的ids筛选出一级功能*/
	public List<SysFun> findRootFun(List<Integer> ids) {
		return SysFunDao.selectRootFun(ids);
	}
	/*根据父id查出下面的功能*/
	public List<SysFun> findChildFun(Integer superId) {
		return SysFunDao.selectChildFun(superId);
	}
	
}
